//package com.nwpu.server.authserver.controller;
//
//import com.google.common.base.Charsets;
//import com.google.common.hash.Hashing;
//import com.nwpu.server.authserver.entity.UserEntity;
//import com.nwpu.server.authserver.service.CaptchaService;
//import com.nwpu.server.authserver.service.UserService;
//import com.nwpu.server.authserver.service.UserTokenService;
//import com.nwpu.server.authserver.vo.LoginForm;
//import com.nwpu.server.common.response.R;
//import org.apache.commons.io.IOUtils;
//import org.apache.shiro.crypto.hash.Sha256Hash;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.*;
//
//import javax.imageio.ImageIO;
//import javax.servlet.ServletException;
//import javax.servlet.ServletOutputStream;
//import javax.servlet.http.HttpServletResponse;
//import java.awt.image.BufferedImage;
//import java.io.IOException;
//import java.utils.Map;
//
//@RestController
//public class LoginController extends AbstractController {
//    @Autowired
//    UserService userService;
//
//    @Autowired
//    CaptchaService captchaService;
//
//    @Autowired
//    UserTokenService userTokenService;
//
//    /**
//     * 验证码
//     */
//    @RequestMapping(value = "authserver/login/captcha.jpg", method= RequestMethod.GET)
//    public void captcha(HttpServletResponse response, @RequestParam("uuid") String uuid) throws ServletException, IOException {
//        response.setHeader("Cache-Control", "no-store, no-cache");
//        response.setContentType("image/jpeg");
//
//        //获取图片验证码
//        BufferedImage image = captchaService.getCaptcha(uuid);
//
//        ServletOutputStream out = response.getOutputStream();
//        ImageIO.write(image, "jpg", out);
//        IOUtils.closeQuietly(out);
//    }
//
//    /**
//     * 登录
//     */
//
//    @PostMapping("authserver/login/sys/login")
//    public Map<String, Object> login(@RequestBody LoginForm form) throws IOException {
//        // 校验验证码
//        boolean captcha = captchaService.validate(form.getUuid(), form.getCaptcha());
//        if (!captcha) {
//            return R.error("验证码不正确");
//        }
//        //用户信息
//        UserEntity user = userService.queryByUserName(form.getUsername());
//
//        //账号不存在、密码错误
//        if (user == null) {
//            return R.error("用户不存在");
//        }
//
//        if (!user.getPassword().equals(Hashing.md5().newHasher().putString(form.getPassword() + "YzcmCZNvbXocrsz9dm8e", Charsets.UTF_8).hash().toString())) {
//            return R.error("账号或密码不正确");
//        }
//
//        //账号锁定
//        if (user.getStatus() == 0) {
//            return R.error("账号已被锁定,请联系管理员");
//        }
//
//        //生成token，并保存到数据库
//        R r = userTokenService.createToken(user.getUserId());
//        return r;
//    }
//
//    /**
//     * 退出
//     */
//    @PostMapping("authserver/login/sys/logout")
//    public R logout() {
//        userTokenService.logout(getUserId());
//        return R.ok();
//    }
//}
